#!/usr/bin/env python
# -*- coding:utf-8 -*- 
# Author: Jeokayne Ataier
import multiprocessing as mp
from time import sleep
'''
多进程不同于多线程 不能简单通过global定义全局变量
多核无法分享全局变量，只能放置一个共享内存，映射在某一虚拟内存上，供各核使用
'''
var = mp.Value("i",1)

#d i b 均有不同的含义


def job(v,num,l):
    l.acquire()
    for i in range(10):
        sleep(0.1)
        v.value += num  #设定共享内存的值的获取、修改，必须是 .value
        print(v.value)
    l.release()

def multicore():
    l = mp.Lock()
    mp1 = mp.Process(target=job,args=(var,2,l))
    mp2 = mp.Process(target=job,args=(var,3,l))
    mp1.start()
    mp2.start()
    mp1.join()
    mp2.join()
#线程运行的先后顺序随机！！！！
if __name__ == "__main__":
    multicore()